/*
 * CState.h
 *
 *  Created on: Nov 7, 2011
 *      Author: welcome
 */

#ifndef CSTATE_H_
#define CSTATE_H_

#include <KD/kd.h>
#include <StateMachine/CTrigger.h>
#include <vector>

using namespace std;

namespace GGEngine {

class CState {

public:
	CState();

	virtual ~CState();

	int getActionID() const {
		return actionID;
	}

	void setActionID(int actionID) {
		this->actionID = actionID;
	}

	int getStateID() const {
		return stateID;
	}

	void setStateID(int stateID) {
		this->stateID = stateID;
	}

	int getTriggerCount();

	void addTrigger(CTrigger *trigger);

	CTrigger* findTriggerWithID(int eventID);

	vector<CTrigger*> getTriggerList() const {
		return triggerList;
	}

	void setTriggerList(vector<CTrigger*> triggerList) {
		this->triggerList = triggerList;
	}
private:
	int stateID;
	int actionID;
	vector<CTrigger*> triggerList;
};

}

#endif /* CSTATE_H_ */
